home *** CD-ROM | disk | FTP | other *** search
/ Aminet 24 / Aminet 24 (1998)(GTI - Schatztruhe)[!][Apr 1998].iso / Aminet / comm / misc / CapiRexxVoiceM.lha / os.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-13  |  2.5 KB  |  121 lines

  1. #ifndef OS_H
  2. #define OS_H
  3.  
  4. #include <proto/exec.h>
  5. #include <exec/memory.h>
  6. #include <proto/dos.h>
  7.  
  8. #include <string.h>
  9.  
  10.  
  11. #define OS_Malloc(x)    AllocVec( x, MEMF_CLEAR )
  12. #define OS_Free(x)        FreeVec( x )
  13.  
  14. #define OS_Delay(x)        Delay( (x) / 20 )
  15.  
  16. #define OS_sprintf sprintf
  17.  
  18.  
  19. /*
  20. **    Datentypen
  21. */
  22.  
  23. /*    Aus exec/types.h:
  24. typedef void                VOID;
  25. typedef unsigned short        BOOL;
  26.  define TRUE                1
  27.  define FALSE                0
  28. */
  29.  
  30. typedef signed char            S8;            /*  8 bit mit Vorzeichen */
  31. typedef unsigned char        U8;            /*  8 bit ohne Vorzeichen */
  32. typedef signed short        S16;        /* 16 bit mit Vorzeichen */
  33. typedef unsigned short        U16;        /*  8 bit ohne Vorzeichen */         
  34. typedef signed long            S32;        /* 32 bit mit Vorzeichen */
  35. typedef unsigned long        U32;        /* 32 bit ohne Vorzeichen */
  36.  
  37. typedef unsigned char         *LPBYTE;    /* Pointer to application memory */
  38. typedef VOID                *LPVOID;    /* Far pointer to void */
  39.  
  40. typedef VOID                (*CSS_CALLBACK)( U16, U32 );
  41.  
  42.  
  43. /*
  44. **    Gemeinsame Sachen
  45. */
  46. #ifndef NULL
  47. #define NULL            ((VOID *)0L)
  48. #endif
  49.  
  50. #ifndef FAR
  51. #define FAR                /* Far-Attribut */
  52. #endif
  53.  
  54.  
  55. #ifdef NO_ODD_MEM_ACCESS
  56. #define GET_U16(a)        (((U16)(*(U8 *)(a)) << 8) + ((U16)(*((U8 *)(a)+1))))
  57. #else
  58. #define GET_U16(a)        (*(U16 *)(a))
  59. #endif
  60.  
  61.  
  62. /*
  63. **    Interrupt Control
  64. */
  65. #define USES_DISABLE
  66. #define DISABLE                Disable()
  67. #define ENABLE                Enable()
  68.  
  69.  
  70. /*
  71. **    Lists and nodes
  72. */
  73.  
  74. typedef struct _Node
  75. {
  76.     struct _Node    *Succ;
  77.     struct _Node    *Pred;
  78. } IC_NODE;
  79.  
  80.  
  81. typedef struct
  82. {
  83.     IC_NODE    *Head;
  84.     IC_NODE    *Tail;
  85.     IC_NODE    *TailPred;
  86. } IC_LIST;
  87.  
  88. #define NEW_LIST(l) IC_LIST l = { (VOID *)&l.Tail, NULL, (VOID *)&l.Head }
  89.  
  90. #define DOLIST(list, node) \
  91.     for (node=(VOID *)(list)->Head; ((IC_NODE *)(node))->Succ; \
  92.     (node) = (VOID *)(((IC_NODE *)(node))->Succ))
  93.  
  94. #define ISLISTEMPTY(l)    (((l)->TailPred) == (IC_NODE *)(l))
  95. #define NEWLIST(l)        {(l)->Head = (IC_NODE *)&(l)->Tail; (l)->Tail = NULL; (l)->TailPred = (IC_NODE *)&(l)->Head; }
  96. #define ADDHEAD(l,n)    {IC_NODE *_s=(l)->Head; (l)->Head=(n); (n)->Succ=_s; (n)->Pred=(IC_NODE *)&(l)->Head; _s->Pred=(n);}
  97. #define ADDTAIL(l,n)    {IC_NODE *_p=(l)->TailPred; (l)->TailPred=(n); (n)->Succ=(IC_NODE *)&(l)->Tail; (n)->Pred=_p; _p->Succ=(n);}
  98. #define REMOVE(n)        {IC_NODE *_s=(n)->Succ, *_p=(n)->Pred; _p->Succ=_s; _s->Pred=_p;}
  99.  
  100.  
  101. /*
  102. **    Memory-Funktionen
  103. */
  104. #define OS_memcpy( d, s, l )    memcpy( (d), (s), (size_t)(l) )
  105. #define OS_memset( d, v, l )    memset( (d), (v), (size_t)(l) )
  106. #define OS_memcmp( d, s, l )    memcmp( (d), (s), (size_t)(l) )
  107.  
  108.  
  109. /*
  110. **    Makro INTERNAL_ERROR
  111. */
  112.  
  113. #ifdef VERBOSE
  114. #define INTERNAL_ERROR OS_InternalError( __FILE__, __LINE__ )
  115. #else
  116. #define INTERNAL_ERROR
  117. #endif
  118.  
  119.  
  120. #endif
  121.